Integrated circuit design is increasingly complex, sometimes involving millions of shapes or geometries etched into a thin layer using photolithography. Thus the size of each shape, and the distance between shapes is constantly decreasing. Often, common configurations of shapes are grouped for convenience into a cell, such that a cell can be placed in the layout without requiring a recreation of each element or shape in the cell. A cell grouping may include multiple cells or a cell and additional shapes, creating a hierarchical design.
Dual patterning techniques are implemented to accommodate densely packed shapes. Shapes placed close together may be implemented on separate mask layers, or with a mask otherwise prepared differently for each of the two closely arranged shapes, allowing the shapes to be placed more closely together. Dual patterning techniques for mask design conventionally assign a “color” to each shape where the color represents the mask that will be used to implement the shape in the design. Where shapes are assigned a color, and two shapes of the same color are detected close together, the color of one shape is changed to a second color, representing a second mask.
Colors are conventionally assigned in batches, often at the end of the design process, as part of the finalization or verification of the design. In densely packed integrated circuits, color assignment can cause loops such that coloring for the desired layout cannot be achieved. Fixing the layout and coloring problem by that point often will involve significant re-work, redesign, retesting, and re-verification.
Accordingly, there is a need in the art for an efficient runtime assignment of mask colors that allows the user to visualize coloring assignments during layout design before finalization or verification.